﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LinqToLfsWorld.Interface;
using System.Runtime.Serialization;
using LinqToLfsWorld.Attributes;

namespace LinqToLfsWorld
{
	/// <summary>
	/// Describes the status of a host.
	/// </summary>
	[DataContract]
	public class HostStatus : ILfsWorldEntity
	{
		/// <summary>
		/// Gets or sets the name of the host.
		/// </summary>
		[DataMember, PubstatQueryable(true)]
		public string HostName { get; set; }

		/// <summary>
		/// Gets or sets a value indicating whether to include headers and footers, or just the inner content.
		/// </summary>
		[DataMember, PubstatQueryable(false)]
		public bool ContentOnly { get; set; }

		/// <summary>
		/// Gets or sets the host name colour.
		/// </summary>
		[DataMember, PubstatQueryable(false)]
		public HostStatusColour HostNameColour { get; set; }

		/// <summary>
		/// Gets or sets a value indicating whether the host name link should be converted to an Lfs Join link.
		/// </summary>
		[DataMember, PubstatQueryable(false)]
		public bool UseLfsJoinLink { get; set; }

		/// <summary>
		/// Gets or sets the markup.
		/// </summary>
		[DataMember]
		public string Markup { get; set; }

	}
}
